#     Xepec.ru - социальная сеть
#     Copyright (C) 2008  Fedorchenko Alexander <admin@xepec.ru>
#
#     This program is free software: you can redistribute it and/or modify
#     it under the terms of the GNU Affero General Public License as
#     published by the Free Software Foundation, either version 3 of the
#     License, or (at your option) any later version.
#
#     This program is distributed in the hope that it will be useful,
#     but WITHOUT ANY WARRANTY; without even the implied warranty of
#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#     GNU Affero General Public License for more details.
#
#     You should have received a copy of the GNU Affero General Public License
#     along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#     Autor: Fedorchenko Alexander
#     Mail: <admin@xepec.ru>
#     Date: 06/02/2010
#
#
# Страница просмотра учетки пользователя
# с выбором настроек, если этот пользователь вы
# и с просмотров проебаных вами (не им) событиями (новостями)

require "../core.pl";

$auth_id = do_check();

&get_query();
$act=$queryString{ "act" };
###############################################################################################################################


 @uname = uname_get($auth_id);
if($act eq "exit")
{
		$xepec_nic_cookie = "xepec_nic 0 +3";
		$xepec_pass_cookie = "xepec_pass 0 +3";
		set_cookie($xepec_nic_cookie,$xepec_pass_cookie);
 		print "Location: $SITE_ADDR/\n\n";
}
if(!$act) {$act="show";}

###############################################################################################################################
#----------------------------------------------Вывод на экран информации------------------------------------------------------#
###############################################################################################################################

print "Content-type: text/xml; charset=utf-8\n\n";
print qq{<?xml version="1.0" encoding="UTF-8"?>
 <?xml-stylesheet type="text/xsl" href="./bugzilla.xsl"?>
<document>
    <user id="$uname['0']" nic="$uname['3']" />
    <site_addr>$SITE_ADDR</site_addr>
    <site_name>$SITE_NAME</site_name>
    <site_name2>$SITE_NAME2</site_name2>
    <title>$SITE_NAME :: Багзилла</title>
    <version>$VERSION</version>};
if($auth_id) {print "<message>TRUE</message>";}
if($auth_id) {do_print_menu();}

use Switch;
switch ($act)
{
	case "show"
	{	
		print qq{
		<subnav>
			<object>
				<name>На главную</name>
				<href>/</href>
			</object>
			<object>
				<name>Добавить ошибку</name>
				<href>?act=add</href>
			</object>
		</subnav>
		};
	
		print qq{\n\t<content type=\"bugzilla\">
		<data>\n\t\t\t<show_bugs>\n};
			$ath = $dbcnx->prepare(qq{SELECT * FROM bugzilla});
			$ath->execute() or die("hi (error #3)");
			#@sss = $ath->fetchrow_array();

			while(my @sss = $ath->fetchrow_array() )
			{	
				my $type = &convert_bugzilla_type($sss[1]);
				if(!$sss['6']) {$sss['6'] = "Еще не исправлено";$sss['7'] = "&#160;";}
				print qq{\t\t\t\t<item id="$sss['0']" type="$type" autor="$sss['2']" autor_email="$sss['3']" comment="$sss['4']" time="$sss['5']" answer="$sss['6']" answer_time="$sss['7']" />\n};
			}
		
		print qq{\t\t\t</show_bugs>\n\t\t</data>\n\t</content>\n};
	}
	case "add"
	{	
		############################## КАПЧА!!##########################################################################
		use Authen::Captcha;
		use Digest::MD5 qw( md5_hex );
		my $cap_data_folder = "$DOC_ROOT/tmp/captcha"; # Здесь будет находиться текстовый файл с кодами CAPTCHA
		my $cap_out_folder = "$DOC_ROOT/tmp/captcha/img"; # Тут расположены проверочные изображения CAPTCHA
		my $cap_length = 6; # Из скольки символов будет состоять капча
		my $captcha = Authen::Captcha->new( data_folder => $cap_data_folder, output_folder => $cap_out_folder,);
		my $md5sum = $captcha->generate_code($cap_length);
		#################################################################################################################
		print qq{
		<subnav>
			<object>
				<name>На главную</name>
				<href>/</href>
			</object>
			<object>
				<name>Все ошибки</name>
				<href>?act=show</href>
			</object>
		</subnav>
		};
	
		print qq{\n\t<content type=\"bugzilla\">
		<data>\n\t\t\t<add_bugs>\n};
		print qq{\t\t\t\t<captcha src="/tmp/captcha/img/$md5sum.png" />\n};
		print qq{\t\t\t</add_bugs>\n\t\t</data>\n\t</content>\n};
	}
	case "add-ok"
	{	
		use CGI;
		use Authen::Captcha;
		use Digest::MD5 qw( md5_hex );
		my $cgi = new CGI;
		
		################################################## Капча #############################################
		my $cap_data_folder = "$DOC_ROOT/tmp/captcha"; # Здесь будет находиться текстовый файл с кодами CAPTCHA
		my $cap_out_folder = "$DOC_ROOT/tmp/captcha/img"; # Тут расположены проверочные изображения CAPTCHA

		my $captcha = Authen::Captcha->new( data_folder => $cap_data_folder, output_folder => $cap_out_folder, );

		my $cap_input_value =  $cgi->param("captcha");

		my $md5sum = md5_hex($cap_input_value); # Вычсляем md5 хэш для пользовательского ввода
		my $result_captcha = $captcha->check_code($cap_input_value,$md5sum);
		################################################## Капча #############################################
	
		if ($cgi->param("nic") !~ /^[a-z0-9\.\-_]+$/i)
		{
			#print $nic;
			$nic_check = 0;
		}
		else
		{
			#print $nic;
			$nic_check = 1;
		}
		if($result_captcha != "1")
		{$error_text="Неправельныю код! Вы робот))";}
			elsif(!$cgi->param("comment"))
				{$error_text="Ну как можно стую ошибки отпавлять, я не понимаю!";}
				else
				{
					if($auth_id) {	$nic=get_nic($auth_id);	$mail=get_email($auth_id);	}else{	$nic=$cgi->param("nic"); $mail=$cgi->param("mail");	}
					$place = $cgi->param("place");
					$comment = $cgi->param("comment");
					
					$ath = $dbcnx->prepare(qq{INSERT INTO bugzilla VALUES (0,?, ?, ?, ?, NOW(),0,0)});
					$ath->execute($place,$nic,$mail,$comment);
					$ath->finish();
					$dbcnx->disconnect();
					
					$error_text="Поздравляю! Мы уже приступили исправлять эту ошибку, и об исправление мы вам сообщим))";
				}
		print qq{
		<subnav>
			<object>
				<name>На главную</name>
				<href>/</href>
			</object>
			<object>
				<name>Все ошибки</name>
				<href>?act=show</href>
			</object>
			<object>
				<name>Добавить еще ошибку</name>
				<href>?act=add</href>
			</object>
		</subnav>
		};
	
		print qq{\n\t<content type=\"bugzilla\">
		<data>\n\t\t\t<add_bugs_ok>\n};
			print "\t\t\t\t<error>$error_text</error>\n";
		print qq{\t\t\t</add_bugs_ok>\n\t\t</data>\n\t</content>\n};
	}
}
print qq{</document>};















